<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>格式化考题内容</title>
    <style>
        body {
            font-family: Arial, sans-serif;
        }
        textarea, input {
            width: 40%;
            border: 1px solid #ccc;
            font-size: 16px;
        }
        button {
            font-size: 16px;
            cursor: pointer;
            background-color: #4CAF50;
            color: white;
            border: none;
        }
        button:hover {
            background-color: #45a049;
        }
    </style>
</head>
<body>
    <textarea oninput="formatContent()" id="inputText" rows="10" placeholder="请输入考题内容..."></textarea>
    <!-- <button onclick="formatContent()">格式化</button> -->
    <textarea id="outputText" rows="10" readonly></textarea>

    <script>
        function formatContent() {
            const inputText = document.getElementById('inputText').value;

            // 去掉多余的换行符，并优化格式
            let formattedText = inputText
                .replace(/[\r\n]+/g, '\n')  // 统一换行符
                .replace(/\n{2,}/g, '\n')  // 去掉多余的换行
                .replace(/([A-Za-z0-9\u4e00-\u9fa5])\n([A-Za-z0-9\u4e00-\u9fa5])/g, '$1 $2')  // 去掉选项后的换行
                .replace(/\n([A-Za-z0-9\u4e00-\u9fa5])/g, ' $1');  // 去掉选项与答案间的换行

            // 格式化代码块，去除代码块中的换行
            formattedText = formattedText.replace(/(\n)([ \t]*@[A-Za-z]+)/g, '$2')  // 去除代码中的多余换行
                                         .replace(/\n([ \t]*\{)/g, '$1')    // 去除代码中 '{' 前后的换行
                                         .replace(/([A-Za-z0-9\u4e00-\u9fa5])\n/g, '$1 ');  // 解决文本和代码的混合格式

            document.getElementById('outputText').value = formattedText;
        }
    </script>
</body>
</html>
